#include "squad/ConsoleView.h"

#include <iostream>
#include <cassert>

//////////////////////////////////////////////////////////
// Реализация понятий предметной области

ConsoleView::ConsoleView(Scene & scene) 
    : _scene(scene) 
{
    assert(!scene.empty());
}

void ConsoleView::outputScene() const
{
    for(size_t is=0; is < _scene.size(); ++is) {
        std::cout << "Отряд № " << is << ":" << std::endl;
        for(const Warrior & w : _scene[is])
            std::cout   << "\t" << w.name << " " << w.health << " " 
                        << std::endl;
    }
}

void ConsoleView::outputStep(size_t squad_index, size_t warrior_index) const
{
    assert(squad_index < _scene.size());
    assert(warrior_index < _scene[squad_index].size());

    std::cout << "Ходит " << _scene[squad_index][warrior_index].name << " из отряда " << squad_index 
                << std::endl;
}

void ConsoleView::outputWinner(size_t squad_index) const
{
    std::cout << "Победил отряд № " << squad_index << std::endl;
}
